package com.zzl.bonds.ticket.dto.myticket;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zzl.apidoc.annotation.ApidocModel;
import com.zzl.apidoc.annotation.ApidocModelProperty;
import com.zzl.bonds.ticket.entity.TicketDataEntity;
import com.zzl.bonds.ticket.entity.feign.ContractEntity;
import com.zzl.general.common.utils.DoubleSerialize;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 我的票据 业务信息
 *
 * @author : spp
 * @date : 2022/2/25 15:38
 */
@Data
@ApidocModel
public class MyTicketBusinessDetail {
    @ApidocModelProperty(description = "主键")
    private String id;

    @ApidocModelProperty(description = "票据编号")
    private String ticketNo;

    @ApidocModelProperty(description = "业务类型")
    private String businessType;
    @JsonSerialize(using = DoubleSerialize.class)
    @ApidocModelProperty(description = "票据原始金额/凭证金额")
    private Double ticketAllAmount;

    @ApidocModelProperty(description = "业务发生时间")
    private Date businessCreateTime;

    @ApidocModelProperty(description = "业务状态")
    private String businessStatus;

    @ApidocModelProperty(description = "交易对手")
    private String counterParty;

    @ApidocModelProperty(description = "合同编号")
    private String contractNo;

    @ApidocModelProperty(description = "应收账款金额")
    private Double receivableAmount;

    /**
     * 文件信息
     */
    @ApidocModelProperty(description = "发票信息")
    List<TicketDataEntity> invoiceList = new ArrayList<>();
    @ApidocModelProperty(description = "凭证信息")
    List<TicketDataEntity> proofList = new ArrayList<>();
    @ApidocModelProperty(description = "协议信息")
    List<ContractEntity> protocolList = new ArrayList<>();
}
